package 第九章static;

/*
 * 当所有对象都有这个属性，但是这个属性会随着对象的变化而变化，此时声明为实例变量
 *
 * 当所有对象都有这个属性，但是这个属性不会随着对象的变化而变化，建议声明为静态变量，节省内存的开销
 *
 *静态变量在类加载的时候，内存在方法区中开辟，访问时不需要创建对象，直接使用"类名.静态变量名"来访问
 *
 *关于 java中的static关键字
 *       1、static修饰的方法是静态方法
 *       2、static修饰的变量是静态变量
 *       3、所以static修饰的元素都是静态的，都可以使用"类名."的方式访问，不建议使用引用.的方式访问
 *       4、static修饰的元素都是类级别的特征，和具体对象无关
 *
 * */
//中国人类
public class ChineseStatic {

    //国籍由于是由chinese实例化的，统一都是中国
    //所有的国籍都是中国，如果声明为实例变量则太浪费
    //这种特征属于类级别的特征，可以提升为整个模版的特征，定义为static
    //称之为静态变量，静态变量在类加载的时候初始化，不需要创建对象，内存就已经分配了
    static String country = "中国";
    //身份证号
    String id;
    //姓名
    String name;

    public ChineseStatic() {
    }

    public ChineseStatic(String id, String name) {
        this.id = id;
        this.name = name;
    }

}
